home *** CD-ROM | disk | FTP | other *** search
-
-
-
- DDDDPPPPLLLLAAAACCCCEEEE((((5555)))) DDDDPPPPLLLLAAAACCCCEEEE((((5555))))
-
-
-
- NNNNAAAAMMMMEEEE
- ddddppppllllaaaacccceeee - NUMA placement specification
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- Placement specifications are described in placement files or invoked from
- the command language library. A valid placement specification contains
- descriptions for memory and thread placement. Memory topologies as well
- as affinities to devices may also be specified. Shared virtual address
- ranges can be mapped to a specified memory. Page size and page migration
- thresholds can also be controlled.
-
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEE
- An example placement file describing two memories and two threads might
- look like:
-
-
- #### ppppllllaaaacccceeeemmmmeeeennnntttt ssssppppeeeecccciiiiffffiiiiccccaaaattttiiiioooonnnn ffffiiiilllleeee
-
- #### sssseeeetttt uuuupppp 2222 mmmmeeeemmmmoooorrrriiiieeeessss wwwwhhhhiiiicccchhhh aaaarrrreeee cccclllloooosssseeee
- mmmmeeeemmmmoooorrrriiiieeeessss 2222 iiiinnnn ttttooooppppoooollllooooggggyyyy ccccuuuubbbbeeee
-
- #### sssseeeetttt uuuupppp 2222 tttthhhhrrrreeeeaaaaddddssss
- tttthhhhrrrreeeeaaaaddddssss 2222
-
- #### rrrruuuunnnn tttthhhheeee ffffiiiirrrrsssstttt tttthhhhrrrreeeeaaaadddd oooonnnn tttthhhheeee 2222nnnndddd mmmmeeeemmmmoooorrrryyyy
- rrrruuuunnnn tttthhhhrrrreeeeaaaadddd 0000 oooonnnn mmmmeeeemmmmoooorrrryyyy 1111
-
- #### rrrruuuunnnn tttthhhheeee 2222nnnndddd tttthhhhrrrreeeeaaaadddd oooonnnn tttthhhheeee ffffiiiirrrrsssstttt mmmmeeeemmmmoooorrrryyyy
- rrrruuuunnnn tttthhhhrrrreeeeaaaadddd 1111 oooonnnn mmmmeeeemmmmoooorrrryyyy 0000
-
-
-
- This specification, when used for initial placement, would request 2
- nearby memories from the operating system. At creation, the threads are
- requested to run on an available cpu which is local to the specified
- memory. As data and stack space is touched or faulted in, physical memory
- is allocated from the memory which is local to the thread which initiated
- the fault.
-
- SSSSUUUUMMMMMMMMAAAARRRRYYYY
- Commands are newline terminated.
-
- Characters following the comment delimiter '#' are ignored.
-
- Tokens are separated by optional whitespace which is ignored.
-
- Line continuation is a \, and must occur between tokens.
-
- In what follows _k,_l,_m,_n,_t_0,_t_1,_d_t,_m_0,_m_1 and _d_m are arithmetic expressions
- that can contain environment variables preceded by a '$'.
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- DDDDPPPPLLLLAAAACCCCEEEE((((5555)))) DDDDPPPPLLLLAAAACCCCEEEE((((5555))))
-
-
-
- A legal statement could be:
-
- mmmmeeeemmmmoooorrrriiiieeeessss (((( $$$$MMMMPPPP____SSSSEEEETTTT____NNNNUUUUMMMMTTTTHHHHRRRREEEEAAAADDDDSSSS ++++ 1111))))////2222 iiiinnnn ccccuuuubbbbeeee
-
- The first example can be written in a scalable fashion as follows:
-
- #### ssssccccaaaallllaaaabbbblllleeee ppppllllaaaacccceeeemmmmeeeennnntttt ssssppppeeeecccciiiiffffiiiiccccaaaattttiiiioooonnnn ffffiiiilllleeee
-
- #### sssseeeetttt uuuupppp mmmmeeeemmmmoooorrrriiiieeeessss wwwwhhhhiiiicccchhhh aaaarrrreeee cccclllloooosssseeee
- mmmmeeeemmmmoooorrrriiiieeeessss $$$$MMMMPPPP____SSSSEEEETTTT____NNNNUUUUMMMMTTTTHHHHRRRREEEEAAAADDDDSSSS iiiinnnn ttttooooppppoooollllooooggggyyyy ccccuuuubbbbeeee
-
- #### sssseeeetttt uuuupppp tttthhhhrrrreeeeaaaaddddssss
- tttthhhhrrrreeeeaaaaddddssss $$$$MMMMPPPP____SSSSEEEETTTT____NNNNUUUUMMMMTTTTHHHHRRRREEEEAAAADDDDSSSS
-
- #### rrrruuuunnnn rrrreeeevvvveeeerrrrsssseeeedddd tttthhhhrrrreeeeaaaaddddssss aaaaccccrrrroooossssssss tttthhhheeee mmmmeeeemmmmoooorrrriiiieeeessss
-
- ddddiiiissssttttrrrriiiibbbbuuuutttteeee tttthhhhrrrreeeeaaaaddddssss $$$$MMMMPPPP____SSSSEEEETTTT____NNNNUUUUMMMMTTTTHHHHRRRREEEEAAAADDDDSSSS----1111::::0000::::----1111 aaaaccccrrrroooossssssss mmmmeeeemmmmoooorrrriiiieeeessss
-
- #### sssseeeetttt tttthhhheeee ppppaaaaggggeeee ppppllllaaaacccceeeemmmmeeeennnntttt ppppoooolllliiiiccccyyyy ttttoooo RRRRoooouuuunnnnddddRRRRoooobbbbiiiinnnn ffffoooorrrr ddddaaaattttaaaa ppppaaaaggggeeeessss
-
- ppppoooolllliiiiccccyyyy ddddaaaattttaaaa ppppllllaaaacccceeeemmmmeeeennnntttt """"PPPPllllaaaacccceeeemmmmeeeennnnttttRRRRoooouuuunnnnddddRRRRoooobbbbiiiinnnn""""
-
-
- Static specifications may occur in a placement file or be called later
- from ddddppppllllaaaacccceeee(3) library routines. Dynamic specifications may only be
- called from ddddppppllllaaaacccceeee(3) library routines. Here is a summary of the
- grammar.
-
- Static specifications:
-
- mmmmeeeemmmmoooorrrriiiieeeessss _m [[iiiinnnn] [ttttooooppppoooollllooooggggyyyy] ccccuuuubbbbeeee|nnnnoooonnnneeee|pppphhhhyyyyssssiiiiccccaaaallll|ccccppppuuuucccclllluuuusssstttteeeerrrr] [nnnneeeeaaaarrrr
- [/_h_w/*]+]
-
- tttthhhhrrrreeeeaaaaddddssss _n
-
- rrrruuuunnnn tttthhhhrrrreeeeaaaadddd _n oooonnnn mmmmeeeemmmmoooorrrryyyy _m [uuuussssiiiinnnngggg ccccppppuuuu _k]
-
- ddddiiiissssttttrrrriiiibbbbuuuutttteeee tttthhhhrrrreeeeaaaaddddssss [_t_0:_t_1[:_d_t]] aaaaccccrrrroooossssssss mmmmeeeemmmmoooorrrriiiieeeessss [_m_0:_m_1[:_d_m]] [bbbblllloooocccckkkk
- [_m]]|[ccccyyyycccclllliiiicccc [_n]]
-
- ppppllllaaaacccceeee rrrraaaannnnggggeeee _k ttttoooo _l oooonnnn mmmmeeeemmmmoooorrrryyyy _m [[wwwwiiiitttthhhh] ppppaaaaggggeeeessssiiiizzzzeeee _n [kkkk|KKKK|mmmm|MMMM] ]
-
- ppppoooolllliiiiccccyyyy ssssttttaaaacccckkkk|ddddaaaattttaaaa|tttteeeexxxxtttt ppppaaaaggggeeeessssiiiizzzzeeee _n [kkkk|KKKK|mmmm|MMMM]
-
- ppppoooolllliiiiccccyyyy ssssttttaaaacccckkkk|ddddaaaattttaaaa|tttteeeexxxxtttt ppppaaaaggggeeeewwwwaaaaiiiitttt [ooooffffffff|oooonnnn]
-
- ppppoooolllliiiiccccyyyy ssssttttaaaacccckkkk|ddddaaaattttaaaa|tttteeeexxxxtttt ppppllllaaaacccceeeemmmmeeeennnntttt _s
-
- ppppoooolllliiiiccccyyyy mmmmiiiiggggrrrraaaattttiiiioooonnnn _n [%%%%]
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- DDDDPPPPLLLLAAAACCCCEEEE((((5555)))) DDDDPPPPLLLLAAAACCCCEEEE((((5555))))
-
-
-
- mmmmooooddddeeee vvvveeeerrrrbbbboooosssseeee [oooonnnn|ooooffffffff|ttttoooogggggggglllleeee]
-
- mmmmooooddddeeee ssssiiiiggggnnnnaaaallll eeeexxxxpppprrrr
-
- Dynamic specifications:
-
-
- mmmmiiiiggggrrrraaaatttteeee rrrraaaannnnggggeeee _k ttttoooo _l ttttoooo mmmmeeeemmmmoooorrrryyyy _m
-
- mmmmoooovvvveeee tttthhhhrrrreeeeaaaadddd|ppppiiiidddd _n ttttoooo mmmmeeeemmmmoooorrrryyyy _m
-
- In the above, the specification: tttthhhhrrrreeeeaaaaddddssss _t_0:_t_1[:_d_t] means to use threads
- numbered _t_0 through _t_1 with an optional stride of _d_t. The default stride
- value is 1.
-
- Similarly, the specification: mmmmeeeemmmmoooorrrriiiieeeessss [_m_0:_m_1[:_d_m]] means to use memories
- _m_0 through _m_1 with an optional stride of _d_m. The default stride value is
- 1.
-
- The qualifier bbbblllloooocccckkkk _m implies a block distribution of the threads with at
- most _m threads per memory. If _m is omitted, its default value is: the
- integer ceiling of the number of threads being distributed divided by the
- number of memories being distributed across.
-
- The qualifier ccccyyyycccclllliiiicccc _n implies a cyclic distribution of the selected
- threads across the selected memories. The threads are chosen in groups of
- _n and dealt out to the appropriate memory until all threads are used. If
- _n is omitted, its default value is one and the threads are dealt out to
- the memories like a deck of cards.
-
-
- EEEERRRRRRRROOOORRRR HHHHAAAANNNNDDDDLLLLIIIINNNNGGGG
- If errors are encountered in the _p_l_a_c_e_m_e_n_t__f_i_l_e, the default procedure
- for ddddppppllllaaaacccceeee is to print a diagnostic message to standard error specifying
- where the error occurred in the _p_l_a_c_e_m_e_n_t__f_i_l_e and abort execution. If
- errors are encountered in the libdplace.so library during the run-time
- execution of _p_r_o_g_r_a_m, then a diagnostic message is sent to standard
- error, a default signal of SIGKILL is sent to all members of the process
- group, and execution is aborted.
-
- The mmmmooooddddeeee ssssiiiiggggnnnnaaaallll eeeexxxxpppprrrr statement allows a selection of a specific signal
- number to be generated upon error. If the mmmmooooddddeeee ssssiiiiggggnnnnaaaallll eeeexxxxpppprrrr is specified,
- the action taken when libdplace.so detects a run-time error is to send
- the signal number derived from eeeexxxxpppprrrr to the _p_r_o_g_r_a_m invoked by ddddppppllllaaaacccceeee.
- Under this condition the control is returned to the caller, which is the
- _p_r_o_g_r_a_m. The signal number can range from 1 to 32.
-
- An example of how to set the signal number:
-
- mmmmooooddddeeee ssssiiiiggggnnnnaaaallll 11116666
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- DDDDPPPPLLLLAAAACCCCEEEE((((5555)))) DDDDPPPPLLLLAAAACCCCEEEE((((5555))))
-
-
-
- Upon detecting an error in libdplace.so during run-time, signal 16
- (defined as SIGUSR1) is sent to the calling process (in this case the
- _p_r_o_g_r_a_m and control is returned to the caller.
-
-
- CCCCOOOOMMMMMMMMOOOONNNN PPPPLLLLAAAACCCCEEEEMMMMEEEENNNNTTTT FFFFIIIILLLLEEEE EEEERRRRRRRROOOORRRRSSSS
- The most common placement file error is the use of either the rrrruuuunnnn or
- ddddiiiissssttttrrrriiiibbbbuuuutttteeee directive without previously declaring both the number of
- threads, and the number of memories using the mmmmeeeemmmmoooorrrriiiieeeessss and tttthhhhrrrreeeeaaaaddddssss
- directives.
-
-
- TTTTEEEERRRRMMMMIIIINNNNOOOOLLLLOOOOGGGGYYYY
- In the above, a tttthhhhrrrreeeeaaaadddd is an IRIX process or any of its descendants which
- were created using sssspppprrrroooocccc(2) or ffffoooorrrrkkkk(2). Thread numbers are ordered (from
- 0 to the number of threads minus 1 ) in the same way as the pid's for
- each process.
-
- A mmmmeeeemmmmoooorrrryyyy is an instantiation of a physical memory.
-
- A rrrraaaannnnggggeeee is a virtual address range such as 0x100000 to 0x200000.
-
-
- PPPPLLLLAAAACCCCEEEEMMMMEEEENNNNTTTT PPPPOOOOLLLLIIIICCCCIIIIEEEESSSS
- The placement policies are specified according to mmmmmmmmcccciiii((((5555)))). The current
- valid policies are PPPPllllaaaacccceeeemmmmeeeennnnttttDDDDeeeeffffaaaauuuulllltttt, PPPPllllaaaacccceeeemmmmeeeennnnttttFFFFiiiixxxxeeeedddd, PPPPllllaaaacccceeeemmmmeeeennnnttttFFFFiiiirrrrssssttttTTTToooouuuucccchhhh,
- PPPPllllaaaacccceeeemmmmeeeennnnttttRRRRoooouuuunnnnddddRRRRoooobbbbiiiinnnn, PPPPllllaaaacccceeeemmmmeeeennnnttttTTTThhhhrrrreeeeaaaaddddLLLLooooccccaaaallll, PPPPllllaaaacccceeeemmmmeeeennnnttttCCCCaaaacccchhhheeeeCCCCoooolllloooorrrr.
-
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- ddddppppllllaaaacccceeee(1), ddddpppprrrrooooffff(1), ddddppppllllaaaacccceeee(3), nnnnuuuummmmaaaa(5), mmmmmmmmcccciiii(5), hhhhwwwwggggrrrraaaapppphhhh(4)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-